#include <bits/stdc++.h>
using namespace std;
struct big_num_mult
{
    string a;
    string b;
    string result_str;
};

void reverse_data( string &data)
{
    char temp = '0';
    int start=0;
    int end=data.size()-1;
    assert( data.size()&& start <= end );
    while ( start < end )
    {
        temp = data[start];
        data[start++] = data[end];
        data[end--] = temp;
    }
}

void multiply2(big_num_mult &temp_result)
{
    reverse_data(temp_result.a);
    reverse_data(temp_result.b);
    int c=0;
    string
            temp(temp_result.a.size()+temp_result.b.size(),'0');
    for (unsigned int i=0;i<temp_result.a.size();i++)
    {
        unsigned int j;
        for (j=0;j<temp_result.b.size();j++)
        {
            c+=temp[i+j]-'0'+(temp_result.a[i]-'0')*(temp_result.b[j]-'0');
            temp[i+j]=(c%10)+'0';
            c=c/10;
        }
        while(c)
        {
            temp[i+j++]+=c%10;
            c=c/10;
        }
    }
    for (int i=temp.size()-1;i>=0;i--)
    {
        if (temp[i]!='0')
            break;
        else
            temp.pop_back();
    }
    reverse_data(temp);
    temp_result.result_str=temp;
}
int main()
{
    big_num_mult temp_result;
    string a,b;
    cin>>a>>b;
    temp_result.a=a;
    temp_result.b=b;
    multiply2(temp_result);
    cout<<temp_result.result_str<<endl;
    return 0;
}
